﻿using Factory.MasterData.Vendors;
using Factory.WarehouseManagement.NoticeOfArrivals.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic.Core;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;

namespace Factory.WarehouseManagement.NoticeOfArrivals
{
    /// <summary>
    /// 到货通知应用服务接口
    /// </summary>
    public interface INoticeOfArrivalAppService : IApplicationService
    {
        /// <summary>
        /// 新增到货通知
        /// </summary>
        /// <param name="page">页码</param>
        /// <param name="limit">页容量</param>
        /// <param name="notificationName">通知单名称</param>
        /// <returns>返回对应数据</returns>
        Task<PagedResult> PagedNoticeOfArrival(int page,int limit,string? notificationName);


        /// <summary>
        /// 新增到货通知
        /// </summary>
        /// <param name="noticeOfArrival">到货通知实体</param>
        /// <returns>返回受影响行数</returns>
        Task<int> Add(NoticeOfArrival noticeOfArrival);

        /// <summary>
        /// 获取供应商信息
        /// </summary>
        /// <returns></returns>
        List<VendorSelectDto> GetVendor();

        /// <summary>
        /// 添加到货通知
        /// </summary>
        /// <returns>返回受影响行数</returns>
        Task<int> AddCreate(NoticeOfArrival noticeOfArrival);

        /// <summary>
        /// 到货通知详情
        /// </summary>
        /// <param name="notificationCode"></param>
        /// <returns></returns>
        Task<NoticeOfArrival> ArriveDetails(string notificationCode);

        /// <summary>
        /// 获取物料信息
        /// </summary>
        /// <returns></returns>
        Task<PagedResult> MaterielInfoQuery(string notificationCode,int page,int limit);


        /// <summary>
        /// 添加物料信息
        /// </summary>
        /// <returns></returns>
        Task<int> AddMaterielInfo(MaterielInfo materielInfo);




    }
}
